MCMC para Ising

En el notebook anterior, vimos cómo muestrear de una distribución de probabilidad $\pi$ dada, usando el algoritmo de Metropolis, que es un ejemplo de un método de "Markov Chain Monte Carlo" ("Monte Carlo usando cadenas de Markov", MCMC). Apliquemos esto al modelo de Ising.

$\newcommand{\ss}{\pmb \sigma} \newcommand{\tt}{\pmb \tau}$

[1] Escribe la probabilidad de aceptación, $\alpha(\ss \to \tt)$, para la distribución de Boltzmann, en términos de la diferencia de energías, $\Delta E := E(\tt) - E(\ss)$.

[2] En el caso de voltear un solo espín, encuentra una expresión analítica para $\Delta E$, en términos del valor actual del espín que se va a voltear (antes de que se cambie su valor) y los valores de sus espines.

[3] Así, implementa el algoritmo de Metropolis para simular el modelo de Ising a una temperatura $T$ dada.

Nota que el resultado de la pregunta [2] muestra que, una vez propuesto un espín por voltear, no es necesario voltear el espín para calcular la $\Delta E$, y, por lo tanto, se requiere voltearlo sólo si el cambio propuesto resulte ser aceptado. Se puede voltear al modificar la misma configuración.

[4] Durante la simulación, rastrea los valores de la magnetización $M(t)$ y la energía $E(t)$. Dibuja estas cantidades como función del tiempo.

[5] Quisiéramos calcular estimados de valores promedio como $\langle E \rangle_\beta$. Viendo tus gráficas, propón cómo hacer esto e impleméntalo.

[6] Así, calcula $\langle E \rangle_\beta$ para distintos valores de $\beta$ entre $0$ y $5$, poniendo $J = 1$.

[7] Haz lo mismo con la magnetización. ¿Por qué no da un resultado interesante? ¿Qué podrías hacer al respecto? Impleméntalo y dibuja las gráficas.

[8] Cambia gradualmente la temperatura inversa de $5$ a $0$ y haz una animación de algunas configuraciones representativas para distintas temperaturas.

[9] Interpreta todo esto físicamente. ¿Qué estamos viendo?